機器學習下的「深度學習」,
主要是模擬人類的神經元運作,
分為三種DNN、CNN和RNN。
如人工智慧、機器學習、深度學習介紹提及,
深度學習又是機器學習的分支,深度學習是人工智慧中,成長最快的領域,深度學習模擬人類神經網絡的運作方式,常見的深度學習架構,如多層感知器(Multilayer Perceptron)、深度神經網路DNN(Deep Neural Network)、卷積神經網路CNN(Convolutional Neural Network)、遞迴神經網路RNN(Recurrent Neural Network)。
深度學習特別應用於視覺辨識、語音識別、自然語言處理、生物醫學等領域,取得非常好的效果。
人腦的重量大約一公斤多,結構非常複雜,預估具有860億個神經元,以及超過100兆條的神經相連,形成的網絡比最先進的超級電腦還要強大。
但是因為人類神經網路太過複雜,為了方便以電腦模擬,將神經元分為多層次,來模擬神經網路。通常會有1個輸入層、1個輸出層、隱藏層可以非常多層,所以稱為深度學習。
如Coursa上的課程 ML的簡要歷史:Perceptron,
就像神經元一樣具有輸入,然後將其乘以權重並加在一起。
將此處的值與「閾值」比較,然後通過函數進行轉換。
例如,如果總和大於或等於零,然後激活或按一個值,否則,請勿激活或按零值。
輸入和權重就像神經元中的神經遞質一樣,其中一些可以是正數並加起來,有些可以是負數,可以從總和中減去。
如果達到閾值,則通過信號,否則,不要傳遞任何東西。
最後,有一個輸出,就像生物神經元一樣,它實際上可以作為輸入傳遞給多層感知器中的其他神經元。
漸漸演變出多層感知器,
承如3 分鐘搞懂深度學習到底在深什麼提及,
在目前主要的深度學習架構裡,人類要擔心的重點只有一個:「Gradient Descent」,中文勉強譯做梯度下降法。我們可以把深度學習想像成有一百萬個學生同時在寫答案,他們每個人都有不同的思考方式,最後每個人都交出一個不同的答案(一個數字)。將所有的答案跟標準答案相減之後(技術上稱為 loss),畫成一條折線圖(或是複雜一點的 3D 圖),離標準答案最接近的那個答案,就會在這張圖的最低點,深度學習的目標就是要找到這個最低點。
最低點代表什麼呢?代表寫出這個答案的學生,擁有最接近正確答案的思考方式,接下來我們讓其他學生向這位學生學習,並繼續測試,是否都能回答正確。理論上,隨著測試次數越多,正確率就會越高,表示這個機器已經通過測試,可以投入實戰分析了。
從錯誤率(紅字)來看,神經網路疊得越深似乎越好,但可以注意它的架構也不是簡單的堆疊,而是變得很複雜。
堆疊上百層的神經網路,常常會導致「Vanishing Gradient」,也就是因為每一層運算讓數值不斷收斂,導致最後的 output 越來越小,跟正確答案相減之後也就看不到顯著的最小值,看起來到處都是最小值。我們面對的可能不只一百萬個答案,很可能是千萬或上億個答案。
神經網路疊加的越多層,這個問題就會越明顯,因此需要設計不同的架構,跟特殊的運算過程,才能避免找不到最低點。有時候反而 layer 少一點,正確率還更高。
如Coursa上的課程「梯度下降」,
A點有一個正斜率,它告訴我們向右尋找最小值。
B點有一個正斜率,它告訴我們向左尋找最小值。
圖形顯示調整的步伐:
主要可以調整「資料點量」和「模型參數量」:
現階段大多模型,通常應用到三層居多,
以避免overfitting及計算效率的問題,
所謂overfitting就是訓練出來的模型很適合Train Date,
但是對Test Data卻差異很大。
以上,打完收工。